﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Robocop.Cerebro;


namespace Robocop.Lataria.UserControls
{
    public partial class EscolhedorCarta : UserControl
    {
        private int numeroEscolhido = 0;
        private Naipe naipeEscolhido = Naipe.Nenhum;

        
        public delegate void DelegateCartaSelecionada(Carta cartaSelecionada);
        public event DelegateCartaSelecionada CartaSelecionada;
         
        public EscolhedorCarta()
        {
            InitializeComponent();
        }

        private void buttonNumero_Click(object sender, EventArgs e)
        {
            string nomeBotao = ((Button)sender).Name;
            this.numeroEscolhido = Convert.ToInt32(nomeBotao.Substring(6));
            
            this.panelCartaVirada.Visible = false;
            this.panelEscolhaCarta.Visible = false;
            this.panelNaipes.Visible = true;
        }

        private void buttonEspada_Click(object sender, EventArgs e)
        {
            this.naipeEscolhido = Naipe.Espada;
            this.mostraCartaEscolhida();

        }

        private void buttonPaus_Click(object sender, EventArgs e)
        {
            this.naipeEscolhido = Naipe.Paus;
            this.mostraCartaEscolhida();
        }

        private void buttonCopas_Click(object sender, EventArgs e)
        {
            this.naipeEscolhido = Naipe.Copa;
            this.mostraCartaEscolhida();
        }

        private void buttonOuros_Click(object sender, EventArgs e)
        {
            this.naipeEscolhido = Naipe.Ouro;
            this.mostraCartaEscolhida();
        }

        private void mostraCartaEscolhida()
        {
            string nomeArquivoImagem = string.Empty;
            Carta cartaSelecionada = new Carta();

            switch(this.naipeEscolhido)
            {
                case Naipe.Espada:
                    nomeArquivoImagem = "clubs-";
                    cartaSelecionada.Naipe = Naipe.Espada;
                    break;
                
                case Naipe.Paus:
                    nomeArquivoImagem = "spades-";
                    cartaSelecionada.Naipe = Naipe.Paus;
                    break;
                
                case Naipe.Copa:
                    nomeArquivoImagem = "hearts-";
                    cartaSelecionada.Naipe = Naipe.Copa;
                    break;
                
                case Naipe.Ouro:
                    nomeArquivoImagem = "diamonds-";
                    cartaSelecionada.Naipe = Naipe.Ouro;
                    break;
            }

            switch (this.numeroEscolhido)
            { 
                case 14:
                    nomeArquivoImagem += "a";
                    break;

                case 13:
                    nomeArquivoImagem += "k";
                    break;
                
                case 12:
                    nomeArquivoImagem += "q";
                    break;
                
                case 11:
                    nomeArquivoImagem += "j";
                    break;
                
                default:
                    nomeArquivoImagem += Convert.ToString(this.numeroEscolhido);
                    break;
            }

            cartaSelecionada.ValorCarta = (ValorCarta)numeroEscolhido;

            nomeArquivoImagem += "-150";

            this.pictureBoxCartaVirada.Image = (System.Drawing.Bitmap) Robocop.Lataria.Properties.Resources.ResourceManager.GetObject(nomeArquivoImagem);

            this.panelCartaVirada.Visible = true;
            this.panelEscolhaCarta.Visible = false;
            this.panelNaipes.Visible = false;

            if (this.CartaSelecionada != null)
            {
                this.CartaSelecionada(cartaSelecionada);
            }
        }

        private void pictureBoxCartaVirada_Click(object sender, EventArgs e)
        {
            this.panelCartaVirada.Visible = false;
            this.panelEscolhaCarta.Visible = true;
            this.panelNaipes.Visible = false;
        }
    
    }
}
